A software program may unexpectedly be interrupted or stopped. A user, such as a system administrator, a software developer, and a performance analysis staff member, can use an introspection tool, such as the SystemTap introspection tool for the Linux® operating system, to generate a backtrace for the software to help determine the activities of the software leading up to the moment of the interruption. A backtrace is a textual report that lists all of the functions in the software that were running at the moment of the interruption, including the function parameters, the current state of nested function calls in the software program, etc. The introspection tool can translate the backtrace into a function call stack, which is a translation of the backtrace data into a human readable format.
To generate a backtrace, the introspection tool performs a complicated search on the memory state of the stopped program software. Some data that the introspection tool uses to perform that search, such as ‘unwind data’, is often not loaded into the program software itself. Examples of unwind data include unwind tables and symbol tables. Typically, the introspection tool searches for the unwind data on a disk file, a network, or virtual memory, which traditionally can take on the order of seconds. As a result, there is a large amount of processing overhead during a backtrace generating operation that makes an introspection tool an intrusive system, rather than non-intrusive system.